1. Field of the Invention
This invention relates generally to modem communications and more particularly, to the partitioning of modem functions into a real-time part and a non-real-time part to maintain a reliable, stable modem connection.
2. Description of the Related Art
Modems are devices that transmit and receive computer data in real-time through radio or telephone lines. Some real-time functions of traditional hardware modems are being implemented as software routines, due to, among other things, less expensive manufacturing of such modems and their increased flexibility. These software routines are then typically executed on a host computer running under a multi-tasking operating system, such as Microsoft Windows.RTM..
This particular class of modems, generally termed software modems, is considered relatively unstable in that, at any particular time, a software modem may drop its connection or fail to transfer data properly if the operating system is delayed in providing the necessary support to the modem on a real-time basis. For example, if the operating system is delayed in providing modem routine processing or bus transfers on a real-time basis, the software modem may drop its connection. This situation may occur when the operating system is heavily loaded servicing other routines, or when peripheral devices or device drivers seize system resources for relatively long periods of time.
Typically, the transmit pathway poses a problem for software modem implementations. In instances where the multi-tasking operating system cannot support real-time modem processing, the transmit pathway might run out of samples to transmit, and the connection might get dropped. To alleviate this problem, prior art software modems include additional buffering. This buffering typically occurs at the digital to analog (D/A) and analog to digital (A/D) sample level. For software modems, additional buffering is typically implemented on the Universal Asynchronous Receiver/Transmitter (UART) unit. Such buffering provides a real-time hardware interface environment to fill in the gaps in the transmission of samples during latency periods of the operating system. The ability of the software modem to successfully maintain the connection during periods of operating system latency depends on the size of the buffers.
Another technique to compensate for operating system latency is described in U.S. Pat. No. 5,721,830, issued to Yeh et al., and entitled "Host Signal Processing Communication System That Compensates for Missed Execution of Signal Maintenance Procedures." The Yeh technique refined the sample buffer to make it symbol aligned. In situations where the sample buffer runs out of samples, because the operating system has failed to maintain a real-time interface, the sample buffer simply repeats the entire previous symbol. One particular shortcoming of this technique is that repeated symbols may confuse the receiver, cause errors in the link, and eventually lead to call failure.
The present invention is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above.